Complete the function scramble(str1, str2) that returns true if a portion of str1 。>characters can be rearranged to match str2, otherwise returns false.
Notes:
Only lower case letters will be used (a-z). No punctuation or digits will be included.
Performance needs to be considered.Examples
scramble('rkqodlw', 'world') ==> True
scramble('cedewaraaossoqqyt', 'codewars') ==> True
scramble('katas', 'steak') ==> False
題目理解:設計一函數檢驗字串一經過重新排列組合後是否可以拼出字串二,並返還布林值。
每項字串二有的字元種類,字串一必須擁有至少與各種類相同數量的字元,如此才能重新排列出字串二。
可利用count()計算數量判斷是否符合條件。
def scramble(s1, s2):
"""檢驗s1是否可重新排列為s2"""
#character為所有s2所具有的字元種類
for character in set(s2):
#利用count()計算character在兩字串中的數量
if s1.count(character) < s2.count(character):
#若有檢驗到任一character的數量在s1中少於s2,則失敗
return False
return True